package com.learn.project2.service.admin.coupon;

import com.learn.project2.model.bo.admin.coupon.CouponCreateBO;
import com.learn.project2.model.bo.admin.coupon.CouponListBO;
import com.learn.project2.model.bo.admin.coupon.CouponUpdateBO;
import com.learn.project2.model.vo.admin.coupon.*;
import com.learn.project2.model.bo.admin.coupon.CouponDeleteBO;
import com.learn.project2.utils.BaseParam;


/**
 * @description:
 * @author zhizhuke 岳子昂
 * @date 2022-01-08 08-45
 * @version 1.0
 */
public interface CouponService {

//    /**
//     * @description:
//     * @param:
//     * @return:
//     * @author 岳子昂
//     * @date: 2022-01-08 09:51
//     */
    //    CouponListVO list(CouponListBO couponListBO);

    /**
     * @description:
     * @param:
     * @return:
     * @author 岳子昂
     * @date: 2022-01-08 09:51
     */
    CouponCreateVO create(CouponCreateBO couponCreateBO);

    /**
     * @description:
     * @param:
     * @return:
     * @author 岳子昂
     * @date: 2022-01-08 09:51
     */
    CouponUpdateVO update(CouponUpdateBO couponUpdateBO);

    /**
     * @description:
     * @param:
     * @return:
     * @author 岳子昂
     * @date: 2022-01-08 09:51
     */
    CouponReadVO read(Integer id);

    /**
     * @description:
     * @author zhizhuke
     * @date 2022-01-08 08-46 
     * @version 1.0
     */
    void delete(CouponDeleteBO couponDeleteBO);

    /**
     * @description:
     * @author zhizhuke
     * @date 2022-01-08 08-46 
     * @version 1.0
     */
    CouponListUserVO listuser(BaseParam param, Integer couponId);

    /**
     * @description:
     * @author zhizhuke
     * @date 2022-01-08 08-46 
     * @version 1.0
     */
    CouponListVO list(BaseParam param, String name, Integer type, Integer status);
}
